/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presentacion.models;

import dtos.DTOFilaPedidoCliente;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Sebastian
 */
public class TableModelPedidoCliente extends AbstractTableModel {

    private List<DTOFilaPedidoCliente> dtos;
    private static final long serialVersionUID = 1L;
    private static final String[] NOMBRE_COLUMNAS = {"Nro Pedido", "Estado", "Fecha Realizado", "Importe Total"};
    
    private static final boolean[] COLUMNAS_EDITABLES = {false, false, false, false};

    private static final Class[] CLASE_COLUMNAS =
        {java.lang.Integer.class, java.lang.String.class, java.util.Date.class, java.lang.Double.class};    
       


    public TableModelPedidoCliente() {
        this.dtos = new ArrayList<DTOFilaPedidoCliente>(0);
        
    }

    @Override
    public String getColumnName(int columna) {
        return NOMBRE_COLUMNAS[columna];
    }
    
    @Override
    public Class<?> getColumnClass(int columna) {
        return CLASE_COLUMNAS[columna];
    }

    @Override
    public boolean isCellEditable(int fila, int columna) {
        return COLUMNAS_EDITABLES[columna];
    }
    
    @Override
    public int getRowCount() {
        return dtos != null ? dtos.size() : 0;
    }

    @Override
    public int getColumnCount() {
        return NOMBRE_COLUMNAS.length;
    }    

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        DTOFilaPedidoCliente fila = dtos.get(rowIndex);
        Object resultado = null;        
        switch (columnIndex) {
            case 0:
                resultado = fila.getNroPedido();
                break;
            case 1:
                resultado = fila.getNombreEstado();
                break;
            case 2:
                resultado = fila.getFechaHoraRealizado();
                break;
            case 3:
                resultado = fila.getImporteTotal();
                break;
            default:
                throw new AssertionError();
        }
        return resultado;
    }
    
    @Override
    public void setValueAt(Object aValue, int row, int column) {
        
    }    

    public void addRow(DTOFilaPedidoCliente dTOFilaPedido) {
        dtos.add(dTOFilaPedido);
        fireTableDataChanged();
    }

    public void removeRow(DTOFilaPedidoCliente dTOFilaPedido) {
        dtos.remove(dTOFilaPedido);
        fireTableDataChanged();
    }

    public void clear() {
        dtos.clear();
        fireTableDataChanged();
    }
    
    public List<DTOFilaPedidoCliente> getRows() {
        return dtos;
    }

    public void setRows(List<DTOFilaPedidoCliente> dTOFilaPedidoCliente) {
        dtos = dTOFilaPedidoCliente;
        fireTableDataChanged();
    }

    public DTOFilaPedidoCliente getRow(int nroFila) {
        return dtos.get(nroFila);
    }


}
